/*@Describe:正则匹配
 *@Author:李志
 *@Time：2019-04-18
 */
//reg.exec	
//reg.test	
//str.match	
//str.search(返回匹配成功的第一个位置)	
//str.replace(替换)	
//str.split(切割)
var regstr = {
	//校验数字的表达式
	number: '^[0-9]*$', //数字
	numberN: function(n){
		return	"^\\d{"+n+"}$" //n位的数字+
	},
	numberMiN: function(n) {
		return "^\\d{" + n + ",}$" //至少n位的数字
	},
	numberMN: function(m, n) {
		return "^\\d{" + m + "," + n + "}$" //m-n位的数字
	},
	number0N0: "^(0|[1-9][0-9]*)$", //零和非零开头的数字
	numberD2: "^([1-9][0-9]*)+(.[0-9]{1,2})?$", // 非零开头的最多带两位小数的数字
	numberD2PM: "^(\\-)?\\d+(\\.\\d{1,2})?$", //带1-2位小数的正数或负数
	numberPMD: "^(\\-|\\+)?\\d+(\\.\\d+)?$", //正数、负数、和小数
	numberD2PR: "^[0-9]+(.[0-9]{2})?$", //有两位小数的正实数
	numberD3PR: "^[0-9]+(.[0-9]{1,3})?$", //有1~3位小数的正实数
	numberP: "^[1-9]\\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\\+?[1-9][0-9]*$", //非零的正整数
	numberNn: '^\\-[1-9][]0-9"*$', //非零的负整数
	numberNI: '^\\d+$', //非负整数
	numberNPI: '^-[1-9]\\d*|0$', //非正整数
	numberNnFP: '^\\d+(\\.\\d+)?$', //非负浮点数
	numberNpFP: '^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$', //非正浮点数
	numberPFP: '^[1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*$', // 正浮点数
	numberNFP: '^-([1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*)$', //负浮点数
	numberFP: '^(-?\\d+)(\\.\\d+)?$', //浮点数
	//校验字符的表达式
	strCN: '^[\\u4e00-\\u9fa5]{0,}$', //汉字
	strEAF: '^[A-Za-z0-9]+$', //英文和数字
	str3R20: '^.{3,20}$', //长度为3-20的所有字符
	str26El: '^[A-Za-z]+$', //由26个英文字母组成的字符串
	str26CEL: '^[A-Z]+$', // 由26个大写英文字母组成的字符串
	str26LEL: '^[a-z]+$', //由26个小写英文字母组成的字符串
	strNA26EL: '^[A-Za-z0-9]+$', //由数字和26个英文字母组成的字符串
	strN26ELOU: '^\\w+$ 或 ^\\w{3,20}$', //由数字、26个英文字母或者下划线组成的字符串
	strCNENLU: '^[\\u4E00-\\u9FA5A-Za-z0-9_]+$', //中文、英文、数字包括下划线
	strCNENBEU: '^[\\u4E00-\\u9FA5A-Za-z0-9]+$', //中文、英文、数字但不包括下划线等符号
	strECC: '[^%&\',; = ? $\ x22]+12', //可以输入含有^%&',; = ? $\ "等字符
	strNs: '[^~\\x22]+', //禁止输入含有~的字符
	//特殊需求表达式
	email: '^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$', // Email地址
	domain: '[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?', //域名
	InternetURL: '[a-zA-z]+://[^\s]* 或 ^http://([\\w-]+\\.)+[\w-]+(/[\\w-./?%&=]*)?$', //网址
	phnum: '^(((13[0-9])|(14[579])|(15([0-3]|[5-9]))|(16[6])|(17[0135678])|(18[0-9])|(19[89]))\\d{8})$', //手机号码
	tel: '^(\\(\\d{3,4}-)|\\d{3.4}-)?\\d{7,8}$', //电话号码("XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX)
	dtel: '\\d{3}-\\d{8}|\\d{4}-\\d{7}', //国内电话号码(0511-4405222、021-87888822)
	ID: '^\\d{15}|\\d{18}$', //身份证号(15位、18位数字)
	bID: '^([0-9]){7,18}(x|X)?$', //短身份证号码(数字、字母x结尾)
	accver: '^[a-zA-Z][a-zA-Z0-9_]{4,15}$', //帐号是否合法(字母开头，允许5-16字节，允许字母数字下划线)
	passver: '^[a-zA-Z]\\w{5,17}$', // 密码(以字母开头，长度在6~18之间，只能包含字母、数字和下划线)
	strcip: '^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$', //强密码(必须包含大小写字母和数字的组合，不能使用特殊字符，长度在8-10之间)
	date: '^\\d{4}-\\d{1,2}-\\d{1,2}', //日期格式
	mouth: '^(0?[1-9]|1[0-2])$', // 一年的12个月(01～09和1～12)
	day: '^((0?[1-9])|((1|2)[0-9])|30|31)$', //一个月的31天(01～09和1～31)
	money: '^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$', //有四种钱的表示形式我们可以接受:"10000.00" 和 "10,000.00", 和没有 "分" 的 "10000" 和 "10,000"
	xml: '^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$', //xml文件
	CNZH: '[\\u4e00-\\u9fa5]', //中文字符的正则表达式
	dchar: '[^\\x00-\\xff]', // 双字节字符(包括汉字在内，可以用来计算字符串的长度(一个双字节字符长度计2，ASCII字符计1))
	nsr: '\\n\\s*\\r', //空白行的正则表达式(可以用来删除空白行)
	html: '<(\\S*?)[^>]*>.*?</\\1>|<.*? />', //HTML标记的正则表达式(网上流传的版本太糟糕，上面这个也仅仅能部分，对于复杂的嵌套标记依旧无能为力)
	flnsr: '^\\s*|\\s*$或(^\\s*)|(\\s*$)', //首尾空白字符的正则表达式(可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等)，非常有用的表达式)
	qq: '[1-9][0-9]{4,}', //腾讯QQ号(腾讯QQ号从10000开始)
	chpc: '[1-9]\\d{5}(?!\\d)', //中国邮政编码(中国邮政编码为6位数字)
	ip: '\\d+\\.\\d+\\.\\d+\\.\\d+', //IP地址(提取IP地址时有用)
	ip2: '((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))' // IP地址
}